package czStvDpds.graphics;

import czStvDpds.mapmanagment.AccesibleMap;
import czStvDpds.movement.AbstractPlayer;
import java.util.ArrayList;

/**
 *
 * @author divad
 */
public interface Drawing2D {
//    implementuje ho třída grafiky

    /**
     * předání mapy grafice
     *
     * @param map
     */
    public void setMapData(AccesibleMap map);

    /**
     * předání malé části mapy grafice
     *
     * @param ??
     */
    public void mapChange(/*
             * MapPart mapPart
             */);

    /**
     * přidání nového hráče do seznamu hráčů grafiky
     *
     * @param p
     */
    public void addPlayer(AbstractPlayer p);

    /**
     * odebrání hráče ze seznamu hráčů grafiky
     *
     * @param p
     */
    public void removePlayer(AbstractPlayer p);

    /**
     * oznámí grafice, že se konkrétní hráč pohunl (změna pozice nebo rotace)
     *
     * @param p
     */
    public void playerMove(AbstractPlayer p);

    /**
     * nastaví, co bude okno zobrazovat (hru, menu, nastavení, ...)
     *
     * @param state
     */
    public void setWindowState(int state);

    /**
     * vrací pole hráčů předaných grafice
     *
     * @return
     */
    public ArrayList<AbstractPlayer> getPlayers();

    /**
     * vrací mapu předanou grafice
     *
     * @return
     */
    public AccesibleMap getMap();

    /**
     * aktualizace okna
     */
    public void refresh();
}
